Skip to content

Fix broken translation guide links in the i18n README - #71179

Open
kutsibalci wants to merge 1 commit into
apache:mainfrom
kutsibalci:fix-i18n-translation-guide-links
Open

Fix broken translation guide links in the i18n README#71179
kutsibalci wants to merge 1 commit into
apache:mainfrom
kutsibalci:fix-i18n-translation-guide-links

Conversation

@kutsibalci

Copy link
Copy Markdown

The locale guideline table in airflow-core/src/airflow/ui/public/i18n/README.md links to .github/skills/airflow-translations/locales/<locale>.md. All twenty of those links return 404 on GitHub.

.github/skills/airflow-translations is a symlink to ../../.agents/skills/airflow-translations. Git stores it as a symlink blob rather than a tree, and GitHub does not traverse it when resolving a path, so anything through it is unreachable in the web UI.

This is verifiable against the API on main:

GET /repos/apache/airflow/contents/.github/skills/airflow-translations
  -> type=symlink, target=../../.agents/skills/airflow-translations

GET /repos/apache/airflow/contents/.github/skills/airflow-translations/locales/ar.md
  -> 404 Not Found

GET /repos/apache/airflow/contents/.agents/skills/airflow-translations/locales/ar.md
  -> type=file, size=6597

So the fix is to point the table at .agents/skills/airflow-translations/locales/, where the files actually are. Both the link target and the visible text are updated, so the table keeps naming the location it sends you to.

The prose above the table ("The PR for a new locale should include: A locale-specific translation guide file at ...") named the same unreachable path. Since a new guide cannot be added under a symlink anyway — it has to be created in .agents/skills/airflow-translations/locales/ — that line is updated too. It is one line, in the same file and the same section, describing the same location.

Note .agents/skills/airflow-translations/SKILL.md already carries an equivalent table and links correctly, as [locales/ar.md](locales/ar.md), because it sits next to the directory. Only the copy of the table in the i18n README was affected.

What was not touched

README.md at the repo root links to .github/skills/magpie-setup/ — that is a link to the symlink rather than through it, and the surrounding text deliberately describes that path as the committed framework artefact. It behaves differently and looked like a separate call, so I left it alone.

Testing

  • Every link in the changed file was re-resolved against a clone of main; none now resolves through a symlinked path component, and none is missing.
  • .github and .agents are both seven characters, so the markdown table alignment is byte-for-byte unchanged.
  • File hygiene checked for the trailing-whitespace, end-of-file-fixer and mixed-line-ending hooks: no trailing whitespace, no CRLF, trailing newline present. The change is a like-for-like string swap inside existing links and inline code, so markdownlint sees no structural change.

Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Claude Code following the guidelines

I ran the link sweep and drafted this description with the tool, and I reviewed the result before opening: the symlink behaviour was confirmed against the GitHub API rather than assumed, the replacement path was confirmed to serve, and the one related link I chose not to change is called out above.

The locale guideline table links to
.github/skills/airflow-translations/locales/<locale>.md, but
.github/skills/airflow-translations is a symlink to
.agents/skills/airflow-translations. Git stores it as a symlink blob and
GitHub does not traverse it, so every one of those twenty links returns
404 in the web UI.

Point them at .agents/skills/airflow-translations/locales/, where the
files actually live. The prose above the table named the same
unreachable location, so it is updated to match.
@boring-cyborg

boring-cyborg Bot commented Aug 5, 2026

Copy link
Copy Markdown

Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide
Here are some useful points:

  • Pay attention to the quality of your code (ruff, mypy and type annotations). Our prek-hooks will help you with that.
  • In case of a new feature add useful documentation (in docstrings or in docs/ directory). Adding a new operator? Check this short guide Consider adding an example Dag that shows how users should use it.
  • Consider using Breeze environment for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
  • Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
  • Please follow ASF Code of Conduct for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
  • Be sure to read the Airflow Coding style.
  • Always keep your Pull Requests rebased, otherwise your build might fail due to changes not related to your commits.
    Apache Airflow is a community-driven project and together we are making it better 🚀.
    In case of doubts contact the developers at:
    Mailing List: dev@airflow.apache.org
    Slack: https://s.apache.org/airflow-slack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:translations area:UI Related to UI/UX. For Frontend Developers.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants